package com.wangsd.common.component;

import com.github.binarywang.wxpay.bean.request.WxPayMicropayRequest;
import com.github.binarywang.wxpay.bean.request.WxPayOrderQueryRequest;
import com.github.binarywang.wxpay.exception.WxPayException;
import com.github.binarywang.wxpay.service.WxPayService;
import com.wangsd.common.component.extBean.*;

public interface WxPayServiceExt extends WxPayService {

    /**
     * 添加收账方
     *
     * @param var1
     * @return
     * @throws WxPayException
     */
    PaymentReceiverResponse addreceiver(PaymentReceiverRequest var1) throws WxPayException;

    /**
     * 删除收账方
     *
     * @param var1
     * @return
     * @throws WxPayException
     */
    PaymentReceiverResponse removereceiver(PaymentReceiverRequest var1) throws WxPayException;

    /**
     * 请求单次分账
     */
    PaymentPostResponse profitsharing(PaymentPostRequest var1) throws WxPayException;

    /**
     * 查询分账结果
     */
    PaymentQueryResponse profitsharingquery(PaymentQueryRequest var1) throws WxPayException;

    /**
     * 刷脸支付接口
     */
    FacePayResponse facepay(FacePayRequest request) throws WxPayException;

    /**
     * 获取调用凭证(测试使用)
     *
     * @param request
     * @return
     * @throws WxPayException
     */
    AuthinfoResponse getWxpayfaceAuthinfo(AuthinfoRequest request) throws WxPayException;

    WxPayMicropayResultExt micropayExt(WxPayMicropayRequest wxPayMicropayRequest) throws WxPayException;

    WxPayOrderQueryResultExt queryOrderExt(WxPayOrderQueryRequest queryRequest) throws WxPayException;

    /**
     * 支付押金（人脸支付）
     */
    DepositFacePayResponse depositfacepay(DepositFacePayRequest request) throws WxPayException;

    /**
     * 支付押金（查询订单）
     */
    DepositOrderQueryResponse depositorderquery(DepositOrderQueryRequest request) throws WxPayException;

    /**
     * 支付押金（申请退款（押金））
     */
    DepositRefundResponse depositrefund(DepositRefundRequest request) throws WxPayException;

    /**
     * 支付押金（申请退款（押金查询））
     */
    DepositRefundQueryResponse depositrefundquery(DepositRefundQueryRequest request) throws WxPayException;

    /**
     * 支付押金（付款码支付）
     */
    DepositMicropayResponse depositmicropay(DepositMicropayRequest request) throws WxPayException;

    /**
     * 消费押金
     */
    DepositConsumeResponse depositconsume(DepositConsumeRequest request) throws WxPayException;

    /**
     * 撤销押金
     */
    DepositReverseResponse depositreverse(DepositReverseRequest request) throws WxPayException;
}
